package com.jiandian.service;

import com.jiandian.entity.SignUser;
import com.jiandian.page.PageInfo;

import java.util.List;

/**
 * 签到用户
 *
 * @author houqi Fu
 * @date 2018/12/15
 */
public interface SignUserService {

    SignUser add(SignUser record);

    SignUser update(SignUser record);

    SignUser findById(Integer id);

    List<SignUser> findAll(PageInfo pageInfo);

    int selectCount(PageInfo pageInfo);

    int batchInsert(List<SignUser> list);

    List<SignUser> batchQueryByIds(List<Integer> ids);

    int delete(Integer id);

    int delete(SignUser record);

    int batchDeleteById(List<Integer> ids);

    PageInfo getPage(SignUser whereEntity, PageInfo pageInfo);

    /**
     * 获得上机人员信息，并存入签到人员表
     * @param machineNumber
     * @return
     */
    SignUser getAndInsertByMachineNumber(String machineNumber);

    SignUser insertOrUpdate(SignUser signUser);

    SignUser selectByIdNumber(String idNumber);

    String signinByIdAndMachineNumber(Integer id, String machineNumber);

    /**
     * 初始化每天的数据
     */
    void initDailyData();

    /**
     * 补签
     */
    boolean supple(SignUser signUser);

    /**
     * 检查是否有剩余的补签卡（未使用的）
     * @return
     */
    boolean checkIfRemainSupplement(SignUser signUser);

    int getSupplementCount(int userId);

    boolean checkIfSignToday(int userId);
}
